/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.com.losalpes.marketplace.pirfq.ws;

import co.com.losalpes.marketplace.pirfq.beans.RFQLocal;
import co.com.losalpes.marketplace.pirfq.bos.CotizacionBO;
import co.com.losalpes.marketplace.pirfq.bos.FabricanteBO;
import co.com.losalpes.marketplace.pirfq.bos.FabricanteCotizacionBO;
import co.com.losalpes.marketplace.pirfq.exceptions.CotizacionNoExisteException;
import java.util.List;
import javax.ejb.EJB;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ejb.Stateless;

/**
 *
 * @author marketplace
 */
@WebService()
@Stateless()
public class PI_RFQ {
    @EJB
    private RFQLocal ejbRef;
    // Add business logic below. (Right-click in editor and choose
    // "Web Service > Add Operation"

    @WebMethod(operationName = "crearCotizacion")
    public String crearCotizacion(@WebParam(name = "cotizacion")
    CotizacionBO cotizacion) {
        return ejbRef.crearCotizacion(cotizacion);
    }

    @WebMethod(operationName = "asignarFabricantesACotizacion")
    public boolean asignarFabricantesACotizacion(@WebParam(name = "numeroCotizacion")
    String numeroCotizacion, @WebParam(name = "fabricantes")
    List<FabricanteBO> fabricantes)throws CotizacionNoExisteException{
        return ejbRef.asignarFabricantesACotizacion(numeroCotizacion, fabricantes);
    }

    @WebMethod(operationName = "obtenerCotizacionesPorFabricante")
    public List<CotizacionBO> obtenerCotizacionesPorFabricante(@WebParam(name = "idFabricante")
    Long idFabricante, @WebParam(name = "estado")
    String estado) {
        return ejbRef.obtenerCotizacionesPorFabricante(idFabricante, estado);
    }
    
    @WebMethod(operationName = "obtenerCotizacionesPorComercio")
    public List<CotizacionBO> obtenerCotizacionesPorComercio(@WebParam(name = "idComercio")
    Long idComercio, @WebParam(name = "estado")
    String estado) throws CotizacionNoExisteException{
        return ejbRef.obtenerCotizacionesPorComercio(idComercio, estado);
    }

    @WebMethod(operationName = "ofertarCotizacion")
    public Boolean ofertarCotizacion(@WebParam(name = "fabricanteCotizacion")
    FabricanteCotizacionBO fabricanteCotizacion) {
        return ejbRef.ofertarCotizacion(fabricanteCotizacion);
    }

    @WebMethod(operationName = "actualizarEstadoCotizacion")
    public Boolean actualizarEstadoCotizacion(@WebParam(name = "numeroCotizacion")
    String numeroCotizacion, @WebParam(name = "estado")
    String estado) throws CotizacionNoExisteException{
        return ejbRef.actualizarEstadoCotizacion(numeroCotizacion, estado);
    }

    @WebMethod(operationName = "obtenerOfertasFabricantes")
    public List<FabricanteCotizacionBO> obtenerOfertasFabricantes(@WebParam(name = "numeroCotizacion")
    String numeroCotizacion) throws CotizacionNoExisteException{
        return ejbRef.obtenerOfertasFabricantes(numeroCotizacion);
    }

    @WebMethod(operationName = "asignarCotizacionGanadora")
    public Boolean asignarCotizacionGanadora(@WebParam(name = "numeroCotizacion")
    String numeroCotizacion, @WebParam(name = "idFabricante")
    String idFabricante) throws CotizacionNoExisteException{
        return ejbRef.asignarCotizacionGanadora(numeroCotizacion, idFabricante);
    }

     @WebMethod(operationName = "buscarPorNumSeguimiento")
    public CotizacionBO consultarCotizacionporNumSeguimiento(@WebParam(name = "numSeguimiento")
    String numSeguimiento){
        return ejbRef.consultarCotizacionporNumSeguimiento(numSeguimiento);
    }
    
}
